package com.chenxi.vhr.service;

import com.chenxi.vhr.bean.BaseMenu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chenxi.vhr.bean.vo.MenuTreeVo;
import com.chenxi.vhr.bean.vo.MenuVo;

import java.util.List;
import java.util.Map;

/**
 * 菜单权限Service
 */
public interface BaseMenuService extends IService<BaseMenu> {

    List<MenuVo> getMenuListByUserId(Integer userId);

    /**
     * 查询系统权限对应的所有角色
     * @return
     */
    List<MenuVo> getAllMenuWithRole();

    /**
     * 加载菜单树、选中、扩展信息
     * @param roleId
     * @return
     */
    MenuTreeVo loadMenuTreeInfo(Integer roleId);
    /**
     * 加载菜单树、选中、扩展信息
     * @param roleId
     * @return
     */
    Map<String, Object> loadMenuTreeMapInfo(Integer roleId);

    /**
     * 仅仅加载菜单树
     * @return
     */
    List<MenuTreeVo> getMenuTree();

    /**
     * 根据角色Id 修改 菜单信息
     * @param roleId
     * @param menuIdList
     * @return
     */
    boolean updateMenuListByRoleId(Integer roleId, List<Integer> menuIdList);

    /**
     * 根据角色查询菜单数量
     * @param roleId
     * @return
     */
    Integer countMenuByRoleId(Integer roleId);
}
